Design of Communicating Systems

The Update to the year 2025 is still under progress but, with the exception of some not yet working links, should be finished. In particular, you can now fill out the Onboarding Form, if you like.

Developing systems is surprisingly hard. We often think that the programming is the difficult part, but most of the important decisions that affect the system's quality are done long before the first line of code is written, or, at least, these decisions should be done before. In this course, you will get some of the tools and experiences that will help you to become a better engineer and adopt a more realistic approach to systems development in team. It's also fun, but we leave it up to you to decide.

Welcome to the iteration in spring 2025!

Startup for 2025

Step 1: Onboarding

Please fill out the onboarding scheme so we can register some more information about you. We will use this for a faster startup and the creation of working teams.

Step 2: Preparation

Read and work through the preparation material for setting up the course.

Step 3: First Class Time

Our first class time will be on Thursday, Jan. 09th 2025 at 14:15 in Hovedbygningen, room GL-HB 326. The regular schedule is here.

Course Content

During the first 9 weeks, we work through the following units. All of these units are useful for the semester project, on which we use more and more time towards the end of the semester.

Unit 1: Setup

We setup teams, tools and learn how to work together.

Unit 2: Modeling

We start with modeling deployment diagrams.

Unit 3: State Machines

State machines let us model behavior precisely.

Unit 4: Requirements

With requirements and use cases we analyze what users need.

Unit 5: State Machines in Python

We learn how to implement state machines in Python.

Unit 6: Agile Development

We learn how agile development methods work.

Unit 7: Communication

We look at communication protocols MQTT and HTTP.

Unit 8: Sequence Diagrams

With sequence diagrams we can model interactions between components.

Unit 9: Components

We construct our system from components.

Edit this page